/*
 * @desc 高德地图相关api
 * @author WYK
 * @date 2022-03-26 23:14:30
 */

// 初始化地图
const initMap = (mapWrap, center = [116.397428, 39.90923], zoom = 12) => {
  return new Promise(((resolve) => {
    resolve(new AMap.Map(mapWrap, {
      zoom,
      center
    }))
  }))
}

// 查询位置
const getCurrentLocation = (map) => {
  let mapWrap = map ? map : AMap
  mapWrap.plugin('AMap.Geolocation', function() {
    let geolocation = new AMap.Geolocation({
      enableHighAccuracy: true, // 是否使用高精度定位，默认:true
      timeout: 10000,          // 超过10秒后停止定位，默认：无穷大
      maximumAge: 0,           // 定位结果缓存0毫秒，默认：0
      convert: true,           // 自动偏移坐标，偏移后的坐标为高德坐标，默认：true
      showButton: true,        // 显示定位按钮，默认：true
      buttonPosition: 'LB',    // 定位按钮停靠位置，默认：'LB'，左下角
      buttonOffset: new AMap.Pixel(10, 20), // 定位按钮与设置的停靠位置的偏移量，默认：Pixel(10, 20)
      showMarker: true,        // 定位成功后在定位到的位置显示点标记，默认：true
      showCircle: true,        // 定位成功后用圆圈表示定位精度范围，默认：true
      panToLocation: true,     // 定位成功后将定位到的位置作为地图中心点，默认：true
      zoomToAccuracy: true      // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见，默认：false
    })
    map.addControl(geolocation)
    geolocation.getCurrentPosition()
    AMap.event.addListener(geolocation, 'complete', function(obj) {
      console.log(obj)
    })
    AMap.event.addListener(geolocation, 'error', function() {
      alert('定位失败')
    })
  })
}

export {
  initMap,
  getCurrentLocation
}
